<!DOCTYPE html>
<script src="../../../resources/js-test.js"></script>
<script>

jsTestIsAsync = true;

description('Test usage of document.currentScript with async')

var seenIds = [];

function logCurrentScript(id) {
    // Don't print anything if pass since the execution order of script[async]
    // is non deterministic.
    if (id !== document.currentScript.id)
        shouldBeEqualToString('document.currentScript.id', id);

    seenIds.push(document.currentScript.id);
    seenIds.sort();
    if (seenIds.join('') === expectedIds)
        finishJSTest();
}

var expectedIds = 'abcdef';

</script>
<script id="a">
logCurrentScript('a');
</script>
<script id="b" async src="resources/log-current-script-b.js"></script>
<script id="c">
logCurrentScript('c');
</script>
<script id="d" async src="resources/log-current-script-d.js"></script>

<script id="e">
logCurrentScript('e');

var script = document.createElement('script');
script.id = 'f'
script.async = true;
script.defer = false;
script.src = 'resources/log-current-script-f.js';
document.head.appendChild(script);
</script>

</body>
</html>

